1. Technical Field
This invention relates to computer systems and networks, and more particularly to sending and retrieving client dump data for debugging at a server on a network such as the internet.
2. Description of the Related Art
A client network computer system may in some instances be in the form of a minimally-configured unit having only the basic components needed to input and output data by a user. All of the applications software and long-term storage of data is provided by a server somewhere else on the network. This type of client station is sometimes called a network computer, in that it is operable only when connected to the network rather than as a stand-alone unit. The client station does not have permanent storage media such as a hard disk drive or a CD-ROM drive, but instead merely accesses any needed data from a remote server via the network.
In addition to relying on the server and the network for applications programs and for long-term data storage, the client station may also rely on the network link for its operating system. JavaOS(trademark) is an example of such an arrangement. JavaOS is an operating system maintained at a server on a network for downloading by a client each time the client comes online at bootup. The client station contains in its hardware a minimumally-sufficient ROM-based operating system code to log onto the network at power-on and begin to retrieve information from the server, and so it immediately starts installing its operating system into local memory upon boot-up as the code is received from the server. Then, after the operating system software is installed, the applications programs needed are retrieved from the server and installed in system memory.
The client station using a JavaOS server-provided operating system or the like can incur problems and situations that may cause the local station to malfunction, i.e., go-offline or stop functioning properly as a client on the network. The preferred method to debug these problems is through the analysis of a system dump by the server or at the server location with the help of a dump formatting tool. Since the operating system used by the client does not have local permanent storage media in most cases, the only viable target media for dump files resides on the server. In a typical network such as the internet, the only means of transmitting data from the client to the server is via the network (TCP/IP) connection. Unfortunately, it is very possible that the malfunction condition or event triggering the need to deliver a system dump of the client""s register and memory data has also likely caused the TCP/IP stack to be damaged or destroyed. In any event, since the cause of the event or condition may not be known until the client station data has been dumped and debugged, it cannot be assumed that the TCP/IP stack is intact.
The methods presently used for debugging and analyzing an operating system post-mortem dump image are functioning at assembly level, rather than source level. It would be desirable to provide the ability to view the code, stack, threads, registers, and local/global variables at a source level. Most post mortem analyzer tools dump assembly code or interpret system structure information.
It is therefore one object of the present invention to provide an improved method of determining the cause of a malfunction condition in a computer system.
It is another object of the present invention to provide an improved method of debugging a post-mortem operating system dump image, at source level.
It is yet another object of the present invention to provide an improved way of providing debugging services at a server location for a client operating system in a computer network.
It is a further object of the invention to provide an improved way of using standard debugging technology to debug a live operating system and/or a post-mortem dump of the operating system.
It is still another object of the invention to provide an improved way of providing faster diagnosis of system-level information by using standard debugging tools, allowing faster start-up time for service organizations by using the same debug tools to understand dump files.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.
According to one embodiment of the invention, a client station on computer network uses an operating system such as JavaOS which is permanently stored at the server rather than on storage media at the client location. The JavaOS is loaded and installed at the client upon bootup of the client. Java is an interpreted language; the source is available at the server and is downloaded as such. Upon the occurrence of a malfunction that causes the client to go off-line, i.e., disappear from the network, a dump image is sent to the server before the client reboots, so that the cause of failure can be determined. The dump image includes the contents of memory, including the operating system (JavaOS in the example), and the code, stack, threads, registers, and local/global variables, which can be analyzed at a source level. This image is sent to the server in formatted packets, by a path separate from that of the network protocol, e.g., TCP/IP, since the client would usually not be functioning properly on the network. At the server, the packets making up the dump image are stored on storage media, and the image is reformatted for use by a standard debugging tool such as ICAT (Interactive Code Analysis Tool).